package com.youth.oauth.commons.beans;

import lombok.Data;

/**
 * AD（Active Directory）系统中的用户，封装了用户相关的信息和凭证。
 */
@Data
public class ADUser {

    /**
     * 专有名称，在AD系统中唯一标识用户。
     */
    String dn;

    /**
     * 用户名，用于日常登录和身份验证。
     */
    String username;

    /**
     * 密码，用于用户身份认证。
     */
    String password;

    /**
     * 表示用户账号是否已经过期，true表示账号有效，false表示账号已经过期。
     */
    boolean  accountNonExpired;

    /**
     * 表示用户的凭证是否已经过期，true表示凭证有效，false表示凭证已经过期，需要更新。
     */
    boolean credentialsNonExpired;

    /**
     * 表示用户账户是否启用，true表示账户处于活动状态，可以登录，false表示账户被禁用，限制登录。
     */
    boolean enabled;

    /**
     * 用户密码剩余有效时间，用于提醒用户及时修改密码。
     */
    long timeBeforeExpiration;

    /**
     * 用户帐户过期后可以登录的次数，用于特殊情况下的宽限登录。
     */
    long graceLoginsRemaining;

}

